﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BE;
using BL;
using System.Data;

namespace UI.DireccionAcademica
{
    public partial class frmCasosEspeciales : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenaCombos();
            }            
        }

        void llenaCombos()
        {
            List<Especialidad> dato = null;
            Alumno_BL obj = new Alumno_BL();

            dato = obj.DATA_ESPECIALIDAD_ListaEspecialidades_H();
            ddlEspecialidad.DataSource = dato;
            ddlEspecialidad.DataTextField = "DESCRIPCCION";
            ddlEspecialidad.DataValueField = "ID";
            ddlEspecialidad.DataBind();
            ddlEspecialidad.Items.Insert(0, "--Todos--");

            dato.Clear();
            Alumno_BL obj2 = new Alumno_BL();
            DataTable dato2 = new DataTable();
            dato2 = obj2.DATA_PERIODO_listaxSemestre("TODOS");
            ddlSemestre.DataSource = dato2;
            ddlSemestre.DataTextField = "semestre";
            ddlSemestre.DataValueField = "semestre";
            ddlSemestre.DataBind();
            ddlSemestre.Items.Insert(0, "--Todos--");

        }

        protected void Button1_Click(object sender, EventArgs e)
        {            
            //if (ddlEspecialidad.SelectedIndex == 0)
            //{
            //    lblMensaje.Text = "Seleccione una Especialidad";
            //}
           
            string a = ddlSemestre.SelectedValue;
            string semestre = a.Substring(2, 3);

            string codigoNombre ="";
            string espec = "";

            if (ddlEspecialidad.SelectedValue == "--Todos--")
            {
                espec = "";
                codigoNombre = "";
                semestre = "";
            }
            else
            {
                espec = ddlEspecialidad.SelectedValue;
            }

            if (ddlSemestre.SelectedValue == "--Todos--")
            {
                espec = "";
                codigoNombre = "";
                semestre = "";
            }
            else
            {
                semestre = ddlSemestre.SelectedValue.ToString().Substring(2, 3);                
            }


            if (txtNombre.Text.Trim().Length == 0)
            {
                codigoNombre = "";
            }
            else
            {
                codigoNombre = txtNombre.Text.Trim();
            }


            CasosEspeciales_BL obj = new CasosEspeciales_BL();
            DataTable dato = new DataTable();
            dato = obj.CasosEspeciales_ListaxSemestre_xCodigoNombre_xEspec(semestre, codigoNombre, espec);                                                            
            grvCasosEspeciales.DataSource = dato;
            grvCasosEspeciales.DataBind();
                                             
            CuentaItemsGrilla(dato);
        }

        public void CuentaItemsGrilla(DataTable dato)
        {
            if (dato.Rows.Count == 0)
            {
                grvCasosEspeciales.Caption = "No se encontró coincidencias";
                lblMensaje.Text = "No se encontró coincidencias";
            }
            else if (dato.Rows.Count == 1)
            {
                grvCasosEspeciales.Caption = "Total de items - 1 registro encontrado";
                lblMensaje.Text = "";
            }
            else
            {
                grvCasosEspeciales.Caption = "Total de items - " + dato.Rows.Count + " registros encontrados";
                lblMensaje.Text = "";
            }
        }

        protected void grvCasosEspeciales_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView gv = (GridView)sender;
            gv.PageIndex = e.NewPageIndex;
            //bindCitiesGrid();

            grvCasosEspeciales.PageIndex = e.NewPageIndex;

            //CasosEspeciales_BL obj = new CasosEspeciales_BL();
            //DataTable dato = new DataTable();

            //string a = ddlSemestre.SelectedValue;
            //string b = a.Substring(2, 3);
            //dato = obj.CasosEspeciales_ListaxSemestre(b);            
            ////DataView dvCasosEspeciales = Getdata();
            //grvCasosEspeciales.DataSource = dato;
            //grvCasosEspeciales.DataBind();

            string a = ddlSemestre.SelectedValue;
            string semestre = a.Substring(2, 3);

            string codigoNombre = "";
            string espec = "";

            if (ddlEspecialidad.SelectedValue == "--Todos--")
            {
                espec = "";
                codigoNombre = "";
                semestre = "";
            }
            else
            {
                espec = ddlEspecialidad.SelectedValue;
            }

            if (ddlSemestre.SelectedValue == "--Todos--")
            {
                espec = "";
                codigoNombre = "";
                semestre = "";
            }
            else
            {
                semestre = ddlSemestre.SelectedValue.ToString().Substring(2, 3);
            }


            if (txtNombre.Text.Trim().Length == 0)
            {
                codigoNombre = "";
            }
            else
            {
                codigoNombre = txtNombre.Text.Trim();
            }


            CasosEspeciales_BL obj = new CasosEspeciales_BL();
            DataTable dato = new DataTable();
            dato = obj.CasosEspeciales_ListaxSemestre_xCodigoNombre_xEspec(semestre, codigoNombre, espec);
            grvCasosEspeciales.DataSource = dato;
            grvCasosEspeciales.DataBind();

            CuentaItemsGrilla(dato);
         

        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            // se valida que el usuario selecciones un semestre
            if (ddlSemestre.SelectedIndex == 0)
            {
                lblMensaje.Text = "Selecciones un Semestre";
                return;
            }
            
            Session["cod_alumno"] = "";
            Session["semestre"] = ddlSemestre.SelectedValue;                       
            Response.Redirect("frmCasosEspecialesNuevo.aspx");
        }

        protected void grvCasosEspeciales_SelectedIndexChanged(object sender, EventArgs e)
        {
            Session["cod_alumno"] = grvCasosEspeciales.SelectedRow.Cells[1].Text;
            string a = Session["cod_alumno"].ToString();
            //Session["semestre"] = ddlSemestre.SelectedValue;
            Session["semestre"] = grvCasosEspeciales.SelectedRow.Cells[0].Text; ;
            string semestre = Session["semestre"].ToString();



            Session["especialidad"]=grvCasosEspeciales.SelectedRow.Cells[3].Text;
            

            Response.Redirect("frmCasosEspecialesNuevo.aspx");
        }

        protected void grvCasosEspeciales_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int index = Convert.ToInt32(e.RowIndex);            
            string codigo = grvCasosEspeciales.DataKeys[index].Values["Codigo"].ToString();
            string semestre = grvCasosEspeciales.DataKeys[index].Values["semestre"].ToString();
            Data_Obs_Prueba_BE objBE = new Data_Obs_Prueba_BE();
            Data_Obs_Prueba_BL objBL = new Data_Obs_Prueba_BL();
            objBE.codAlumno = grvCasosEspeciales.DataKeys[index].Values["Codigo"].ToString();
            objBE.semestre = grvCasosEspeciales.DataKeys[index].Values["semestre"].ToString();
            objBL.Eliminar(objBE);

            Button1_Click(null, null);

           
           lblMensaje.Text = "Caso especial eliminado";    
           


            OperacionesAlumnos opeal = new OperacionesAlumnos();
            Alumno alumno = opeal.obtenerAlumnoporCodigo(objBE.codAlumno);

            Academico_BL academico = new Academico_BL();
            academico.ActualizarPeriodo(alumno.ID, alumno.Especialidad.ID, 1);


            OperacionesNotas notasope = new OperacionesNotas();
            //notasope.ActualizarFlagNotas();
            
            //string codigo = grvAlumno.DataKeys[objItem.RowIndex].Values["COD_ALUMNO"].ToString();
            //Session["cod_alumno"] = grvCasosEspeciales.SelectedRow(index).Cells[1].Text;
          
        }

        protected void ddlEspecialidad_SelectedIndexChanged(object sender, EventArgs e)
        {

            grvCasosEspeciales.DataSource= null;
            grvCasosEspeciales.DataBind();

            if (ddlEspecialidad.SelectedValue == "") {
                return;
            }

            if (ddlSemestre.SelectedValue == "")
            {
                return;
            }


            string a = ddlSemestre.SelectedValue;
            string semestre = a.Substring(2, 3);

            string codigoNombre = "";
            string espec = "";

            if (ddlEspecialidad.SelectedValue == "--Todos--")
            {
                espec = "";
                codigoNombre = "";
                semestre = "";
            }
            else
            {
                espec = ddlEspecialidad.SelectedValue;
            }

            if (ddlSemestre.SelectedValue == "--Todos--")
            {
                espec = "";
                codigoNombre = "";
                semestre = "";
            }
            else
            {
                semestre = ddlSemestre.SelectedValue.ToString().Substring(2, 3);
            }


            if (txtNombre.Text.Trim().Length == 0)
            {
                codigoNombre = "";
            }
            else
            {
                codigoNombre = txtNombre.Text.Trim();
            }


            CasosEspeciales_BL obj = new CasosEspeciales_BL();
            DataTable dato = new DataTable();
            dato = obj.CasosEspeciales_ListaxSemestre_xCodigoNombre_xEspec(semestre, codigoNombre, espec);
            grvCasosEspeciales.DataSource = dato;
            grvCasosEspeciales.DataBind();

            CuentaItemsGrilla(dato);

        }
    }
}